package rescsa.gob.pe.defecto.dao;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import rescsa.gob.pe.defecto.bean.DefectoBEAN;
import rescsa.gob.pe.defecto.service.DefectoService;

public class DefectoDAO implements DefectoService{

	SqlSessionFactory sqlMapper = null;//obtiene la configuracion del archivo
	{
		String archivo = "ConfiguracionIbatis.xml";//abrea la configuracion
		try {
			Reader reader = Resources.getResourceAsReader(archivo);
			sqlMapper = new SqlSessionFactoryBuilder().build(reader);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	@Override
	public List<DefectoBEAN> ListaDefectos() throws Exception {
		SqlSession session = sqlMapper.openSession();
		List lista = null;
		try {
			 lista =session.selectList("dawi.SQL_listarDefectos");			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
		return lista;
	}

	@Override
	public List<DefectoBEAN> ListaDefectosActividad(String codigo_defecto)
			throws Exception {
		SqlSession session = sqlMapper.openSession();
		List lista = null;
		try {
			 lista =session.selectList("dawi.SQL_listaDefectosActividad",codigo_defecto);			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
		return lista;
	}

	@Override
	public DefectoBEAN ObtenerDefectos(int codigo_defecto)
			throws Exception {
		SqlSession session = sqlMapper.openSession();
		DefectoBEAN undefecto = null;
		try {
			undefecto =(DefectoBEAN)session.selectOne("dawi.SQL_obtenerDefectos",codigo_defecto);			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
		return undefecto;
	}

}
